package com.imooc.SmartChargeStation.demo.mqtt.FacoryMode.conf;

import lombok.Data;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * author: zpy
 * description: MQTT 配置类
 * date: 2025/8/17
 */

@ConfigurationProperties(prefix = "mqtt")
/*
    该注解用于绑定配置文件中的属性到当前类的字段。
    prefix = "mqtt" 表示：只匹配配置文件中以 mqtt. 为前缀的属性。
    例如，配置文件中的 mqtt.host=tcp://127.0.0.1:1883 会自动绑定到当前类的 host 字段。
 */
@Data
public class MqttProps {
/*
    怎么理解这个？
    这是一个配置属性绑定类，用于将配置文件（如application.yml）中与MQTT相关的配置项
    映射到Java对象的字段中。
    这样的话，在项目中可以通过注入该类的实例，方便的获取MQTT连接所需要的参数
 */
    // MQTT服务器地址
    private String host;
    // 工厂模式id
    private String clientIdFactoryMode;
    // 订阅主题
    private String topic;
    //
    private MqttConnectOptions options;
}
